//按分钟占位计费规则
import moment from "moment"


//按分钟占位计费规则示例
//  let rules_value={
//         name:"minuteRules",  //规则对应的收费标准名称
//         unit:"分钟",     //计费单位   1分钟 
//         unit_value:1.0,   //单位费用 1元/分钟
//  }

/**
 * 计算占位费用收费标准
 * @param {*} startTime  开始时间 格式 YYYY-MM-DD HH:mm:ss
 * @param {*} endTime    结束时间 格式 YYYY-MM-DD HH:mm:ss
 * @param {*} rules_value   收费标准对象 OBJECT
 * @returns  {number} 费用
 */
 function calculateFee(startTime, endTime, rules_value) {
    let start = moment(startTime, 'YYYY-MM-DD HH:mm:ss');
    let end = moment(endTime, 'YYYY-MM-DD HH:mm:ss');
    let duration = end.diff(start, 'minutes'); // 计算分钟数
    let fee = 0;
    if (duration > 0) {
        fee = duration * rules_value.unit_value; // 计算费用
    }
    return fee;
}

async function   calculate(startTime, endTime,rule_id) {
    let rules = await db.query(`SELECT * FROM billing_rules WHERE id = ?`, [rule_id]);
    if (rules.length === 0) {
        return null;
    }
    return calculateFee(startTime, endTime, rules[0].rules_value);
}

export default {
    calculate
}